package persistencia.cv;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collection;
import java.util.Locale;

import negocio.cv.CV;
import negocio.cv.Persona;

import persistence.DBManager;

public class DAOCv implements DAOInterface {

	private DBManager manager;
	SimpleDateFormat sdformat;
	private DAOPersona daoPersona;
	private DAOReferenciaLaboral daoReferenciaLaboral;
	private DAOEstudio daoEstudio;
	private DAOHerramientaInformatica daoHerramientasInformatica;
	private DAOConocimientoIdioma daoConocimientoIdioma;
	private DAOTarea daoTarea;
	private DAOExigencia daoExigencia;
	
	public DAOCv(DBManager manager) {
		this.manager=manager;
		daoPersona=new DAOPersona(manager);
		daoReferenciaLaboral=new DAOReferenciaLaboral(manager,-1);
		daoHerramientasInformatica=new DAOHerramientaInformatica(manager);
		daoEstudio=new DAOEstudio(manager,-1);
		daoConocimientoIdioma=new DAOConocimientoIdioma(manager);
		daoTarea=new DAOTarea(manager);
		daoExigencia=new DAOExigencia(manager);
		sdformat= new SimpleDateFormat("yyyy-MM-dd");
		//dateFormat.setCalendar(Calendar.getInstance(new Locale("es","AR")));
	}

	@Override
	public void delete(Object b) {
		// TODO Auto-generated method stub

	}

	@Override
	public Object get(String businessId) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Collection getAll() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public int insert(Object b) {
		CV cv=(CV)b;
		String query,fecha;
		int id=-1;
		try{
		//grabo la persona	
		cv.getPersona().setIdPersona(daoPersona.insert(cv.getPersona()));

        fecha=sdformat.format(cv.getFechaRecepcion());
        //char fullPart=?'S':'N';
        char disponibilidad=cv.isFullPartTime()?'S':'N';
        
        query= "select tesis.save_cv(NULL,"+ 
        +cv.getPersona().getIdPersona()+ ",\'"+ fecha+"\',\'N\',\'"+cv.getObservacion()+"\',\'"+
        cv.getFoto_path()+"\',"+ cv.getRemunPretendida()+","+cv.getNumeroUbicacion()+",\'"+
          +disponibilidad+"\',\'"+cv.getHorarioPartTime()+"\')";
        ResultSet rs = manager.openQuery(query);
        rs.first();
        id=rs.getInt(1);
        cv.setIdCV(id);
        
       // daoReferenciaLaboral.setIdCV(id);
        daoReferenciaLaboral.insertAll(cv.getReferenciasLaborales(),id);
        daoEstudio.insertAll(cv.getReferenciasEstudio(), id);
        daoHerramientasInformatica.insertAll(cv.getHerramientas(), DAOHerramientaInformatica.CV, id);
        daoConocimientoIdioma.insertAll(cv.getIdiomas(), DAOConocimientoIdioma.CV, id);
        daoTarea.insertAll(cv.getTareas(), DAOTarea.CV, id);
        daoExigencia.insertAll(cv.getExigencias(), DAOExigencia.CV, id);
        
     
    } catch (SQLException ex) {
        ex.printStackTrace();
       
    }
    return id;
	}
	

	@Override
	public void update(Object b) {
		// TODO Auto-generated method stub

	}

}
